package br.com.dallasmotopecas.eptus.produto.controller;

import java.sql.Connection;
import java.util.List;

import javax.faces.context.ExternalContext;

import br.com.dallasmotopecas.comum.produto.vo.ProdutoVo;
import br.com.dallasmotopecas.eptus.produto.model.ProdutoEptusRepModel;
import br.com.dallasmotopecas.util.controller.AbstractController;
import br.com.dallasmotopecas.util.exception.ClasseNaoEncontradaException;
import br.com.dallasmotopecas.util.exception.ConexaoException;
import br.com.dallasmotopecas.util.exception.ListarObjetoException;

public class ProdutoEptusRepController extends AbstractController
{
	public ProdutoEptusRepController(Connection connection) throws ConexaoException
	{
		super(connection);
	}

	public ProdutoEptusRepController(ExternalContext externalContext) throws ClasseNaoEncontradaException, ConexaoException
	{
		super(externalContext);
	}
	
	public void venda(List<ProdutoVo> listaVenda, ProdutoVo produtoVo) throws ListarObjetoException
	{
		ProdutoEptusRepModel eptusRepModel = null;
		try
		{
			if (listaVenda != null)
			{
				listaVenda.clear();
				eptusRepModel = new ProdutoEptusRepModel(getConnection());
				listaVenda.addAll(eptusRepModel.getVenda(produtoVo));
			}
		}
		catch(ListarObjetoException e)
		{
			throw e;
		}
		finally
		{
			eptusRepModel = null;
		}
	}
	
	public void reposicaoImportado(List<ProdutoVo> listaReposicaoImportado, ProdutoVo produtoVo) throws ListarObjetoException
	{
		ProdutoEptusRepModel eptusRepModel = null;
		try
		{
			if (listaReposicaoImportado != null)
			{
				listaReposicaoImportado.clear();
				eptusRepModel = new ProdutoEptusRepModel(getConnection());
				listaReposicaoImportado.addAll(eptusRepModel.getReposicaoImportado(produtoVo));
			}
		}
		catch(ListarObjetoException e)
		{
			throw e;
		}
		finally
		{
			eptusRepModel = null;
		}
	}
	
	public void reposicao(List<ProdutoVo> listaReposicao, ProdutoVo produtoVo) throws ListarObjetoException
	{
		ProdutoEptusRepModel eptusRepModel = null;
		try
		{
			if (listaReposicao != null)
			{
				listaReposicao.clear();
				eptusRepModel = new ProdutoEptusRepModel(getConnection());
				listaReposicao.addAll(eptusRepModel.getReposicao(produtoVo));
			}
		}
		catch(ListarObjetoException e)
		{
			throw e;
		}
		finally
		{
			eptusRepModel = null;
		}
	}
	
	public void carregarListaProduto(List<ProdutoVo> listaProduto) throws ListarObjetoException
	{
		ProdutoEptusRepModel eptusRepModel = null;
		try
		{
			if (listaProduto != null)
			{
				listaProduto.clear();
				eptusRepModel = new ProdutoEptusRepModel(getConnection());
				listaProduto.addAll(eptusRepModel.getListaProduto());
			}
		}
		catch(ListarObjetoException e)
		{
			throw e;
		}
		finally
		{
			eptusRepModel = null;
		}
	}

}
